import java.util.concurrent.CountDownLatch;

public class Demo25 {
	public static void main(String[] args) throws InterruptedException {
		CountDownLatch countDownLatch=new CountDownLatch(10);
		for(int i=0;i<9;i++) {
			int id=i;
			Thread t1=new Thread(()->{
				System.out.println("thread"+id);
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {
					throw new RuntimeException(e);
				}
				//通知当前的线程执行完了，每执行完一个线程，里面有一个类似计数器的东西。都会++；
				countDownLatch.countDown();
			});
			t1.start();
		}
		//只有当完成的线程数量跟初始化的数量一样，才会打印下面的东西，要不然一直会继续阻塞等待。
		countDownLatch.await();
		System.out.println("所有任务都完成了");
	}
}
